package org.chen.common.response;

import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;
import org.chen.common.model.travel.StoreTravelOrder;

import java.io.Serializable;
import java.math.BigDecimal;
import java.util.Date;
import java.util.List;

@Data
@EqualsAndHashCode(callSuper = false)
@Accessors(chain = true)
@Schema(name = "OrderTravelDetailResponse对象", description="订单列表响应对象(旅游)")
public class OrderTravelDetailResponse implements Serializable {
    private static final long serialVersionUID = 1387727608277207652L;

    private StoreTravelOrder storeOrder;
    private String statusPic;
    private Integer offlinePayStatus;

    @Schema(description = "订单id")
    private String id;

    @Schema(description = "订单编号")
    private String orderId;

    @Schema(description = "支付单号")
    private String payId;

    @Schema(description = "创建时间")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    private Date createTime;

    @Schema(description = "支付状态")
    private Boolean paid;

    @Schema(description = "支付时间")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    private Date payTime;

    @Schema(description = "支付金额")
    private BigDecimal payPrice;

    @Schema(description = "订单状态（0：待使用；1：已使用，待评价；2：已完成；）")
    private Integer status;

    @Schema(description = "订单状态")
    private String orderStatus;

    @Schema(description = "订单状态描述：前端")
    private String orderStatusMsg;

    @Schema(description = "订单商品总数")
    private Integer totalNum;

    @Schema(description = "0 未退款 1 申请中 2 已退款 3 退款中")
    private Integer refundStatus;

    @Schema(description = "不退款的原因")
    private String refundReason;

    @Schema(description = "退款用户说明")
    private String refundReasonWapExplain;

    @Schema(description = "前台退款原因")
    private String refundReasonWap;

    @Schema(description = "订单详情对象列表")
    private List<OrderTravelInfoResponse> orderInfoList;

    @Schema(description = "订单类型:0-普通订单")
    private Integer type = 0;
}
